/// 多个生命周期
struct Decoder<'a, 'b, S, R> {
    schema: &'a S,
    reader: &'b R,
}

/// 生命周期子类型: 表示'a的生命周期比'b长
impl<'a, 'b, S, R> Decoder<'a, 'b, S, R> where 'a: 'b {}

fn main() {
    let a: Vec<u8> = vec![];
    let b: Vec<u8> = vec![];
    let decoder = Decoder {schema: &a, reader: &b};
}